package com.ioc;

import com.ioc.dao.UserDao;
import com.ioc.dao.impl.UserDaoImpl;
import com.ioc.factory.UserDaoFactory;
import org.springframework.context.support.ClassPathXmlApplicationContext;

/**
 * 什么是IOC?
 * IOC就是控制反转，什么是控制反转？
 * 就是原来需要某个对象的时候，就直接new，而现在将对象new的权限反转给Spring，由Spring控制对象的创建、注入、销毁等等
 */
public class IOCTest01 {


    public static void main(String[] args) {

        //这不是与Spring整合， 是普通的工厂方法如何调用
//        UserDao userDao1 = UserDaoFactory.getUserDao();
//        UserDao userDao2 = UserDaoFactory.getUserDao();
//        System.out.println(userDao1);
//        System.out.println(userDao2);

        //与Spring整合，静态工厂调用方式
        ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
        UserDao userDao = (UserDao) ctx.getBean("userDao");
        userDao.save();

    }



}
